package com.season.seasonStudy.javase.j_012_oop.inner02.jicheng;
/**
 * 继承：
	好处：不劳而获      
	特点：复用（子类的代码量减少），扩展，维护性强

	方法 ：
		子类共同的属性和方法，抽象到父类
		使用 子类 extends 父类
		子类编写特殊的方法和属性

	访问权限划分：       
					自己		包内子类		包内非子类		包外子类		包外非子类
		private		1			0			0				0			0
		默认			1			1			1				0			0
		protected	1			1			1				1			0
		public		1			1			1				1			1

		子类直接调用属性和方法（考虑访问权限）
		非子类必须创建对象使用
	
	super （指向自己中的继承父类的属性和方法），this（自己的对象）
	子类中必须使用super的时候：子类中存在于父类相同的属性和方法一致（方法重写）的时候，必须使用super.属性来调用父类重名属性
	
	super();子类构造方法中使用，必须是构造方法的第一句，复用父类无参构造方法完成子类中父类属性的初始化,显式调用父类构造方法

	原则：1没有任何构造方法时，jvm提供无参构造方法使用
	      2子类构造必须调用父类构造方法，完成子类中父类属性的初始化，然后初始化自己的属性
	      3子类构造时候如果没有显式调用父类构造方法，一定隐式调用父类无参构造
	
	
	方法重写：
		方法名相同，参数列表一致，返回值相同，在子类中才能重写
		子类方法的访问修饰符，不能比父类的访问权限缩小可以放大
			
 *	子类对象的构造顺序：
 *		父类属性赋值---父类构造方法---子类属性---子类构造方法
 *
 * @author jijie
 *
 */

/**
 * 是什么？
	
	好处：不劳而获！！少写好多代码！！
	缺点：好逸恶劳！！

	特点：复用，拓展，维护性强。。
	

	
为什么？
	因为要拓展更多的功能，所以才要继承，没有新功能，就不需要继承！！

	

用在哪？
	
怎么做？
	1）把子类所拥有的共同的方法和属性抽象出来，形成一个父类！！
	2）使用extends这个关键字继承父类！！！！
	3）写特殊的方法和属性！！

	4)父类中私有的东西不能直接用！但给你留了一个口！那就是方法！！

	就像你爸的钱你不能直接拿，但可以要！！
	5) 对象里一共就四种类型数据
		private   （）    proteced  public
			和亲戚关系是一样一样的！！



		访问权限划分：


		       自己		包内子类		包内非子类		包外子类			包外非子类
	private   	1		   0		    0			   0			     0
	默认        	1 		   1		    1			   0			     0
	proteced    	1		   1 		    1			   1			     0
	public      	1		   1		    1			   1			     1


关键字：
super
	super调用的子类里的东西。但是调的比this的少！！

	用到的地方	用在：：在子类中存在和父类相同的属性和方法的时候！（当一个方法放在父类里时，即被子类重写的方法时，还想要调用父类
		里的方法的话，那就用到了super！！！！！！！！！！！！！）
this

	this调用的方法什么的比super调用的多！！！

	用在要传递自己，或者谁调用传谁的时候！！！



里氏替换原则：

	父类 对象名=new 子类（）；

super
	调用父类里的各种方法，不包括构造方法！！

	在构造方法里，在各种方法里都可以使用
this
	调用自己的各种方法，不包括构造方法！！！

	在构造方法里，在各种方法里都可以使用
this（）
	调用自己的构造方法！
	只在构造方法里才能使用！	

super（）：

	调用父类的构造方法！没写出来就是隐式的构造方法！
			   写出来的就是显示的构造方法！

	只能在构造方法里才能使用！


		子类构造方法中使用，必须是构造方法的第一句，复用父类中无参数的构造方法完成子类中父类属性的初始化，显示调用父类的构造方法！
		原则1：没有构造方法的时候，系统给你提供无参的构造方法。
		原则2；子类构造的时候必须调用父类的构造方法，完成父类当中的初始化，然后再构造自己的初始化！
		原则3：子类构造的时候如果没有显示调用父类构造方法，一定是调用父类的无参构造方法。


构造方法：：
	每个构造方法都会调用父类的构造方法，如果super（）这样是显式的调用，没写则是隐式的调用！


子类对象的构造顺序：：：：

	一主方法里::::先调用子类的构造方法---->父类属性初始化----> 父类构造函数---->子类属性初始化----> 子类构造方法


在没有任何指向的时候采用：：：：：：：：：：：：就近原则！！！！



 * 
 * 
 * @author jijie
 *
 */
public class jichengDemo {

}
